]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
iconGrid: Only animate visible icons
authorGeorges Basile Stavracas Neto <georges.stavracas@gmail.com>
Sat, 31 Aug 2019 15:32:31 +0000 (12:32 -0300)
committerFlorian Müllner <florian.muellner@gmail.com>
Fri, 13 Sep 2019 15:33:45 +0000 (15:33 +0000)
Mutter recently added an optimization to only allocate
visible children [1]. That broke ClutterClones, but it
was subsequently fixed [2].

However, that exposed a third problem, this time with
FrequentView: visible but transparent icons, that are
not allocated by the icon grid, were cloned and animated
during the spring animation.

Only animate visible icons with opacity greater than 0.

[1] https://gitlab.gnome.org/GNOME/mutter/commit/0eab73dc
[2] https://gitlab.gnome.org/GNOME/mutter/commit/08a3cbfc

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/696

js/ui/iconGrid.js

index 1d22e821aa2054d2724c3df1949bf7878403930f..0cddb6256d94ef234d66e7c0712d439d6a07057b 100644 (file)
@@ -427,7 +427,7 @@ var IconGrid = GObject.registerClass({
      * set of items to be animated.
      */
     _getChildrenToAnimate() {
-        return this._getVisibleChildren();
+        return this._getVisibleChildren().filter(child => child.opacity > 0);
     }
 
     _resetAnimationActors() {
@@ -884,7 +884,7 @@ var PaginatedIconGrid = GObject.registerClass({
 
     // Overridden from IconGrid
     _getChildrenToAnimate() {
-        let children = this._getVisibleChildren();
+        let children = super._getChildrenToAnimate();
         let firstIndex = this._childrenPerPage * this.currentPage;
         let lastIndex = firstIndex + this._childrenPerPage;